Se nos pide implementar un algoritmo de aprendizaje Hebbiano con regla de Sanger. Nuestro algoritmo recibe una matriz de pesos inicial, una velocidad de aprendizaje, una cantidad de iteraciones a realizar y un vector $[a_1$ $a_2$ $a_3$ $a_4$ $a_5$ $a_6]$ que define el rect\'angulo donde se generan los inputs. En cada iteraci\'on, se actualiza la matriz de pesos $w$ usando los valores de un nuevo input vector de seis dimensiones $x$ generado de manera uniforme en ese rect\'angulo (esto quiere decir que en cada corrida el conjunto de entrenamiento cambia). En particular, testeamos el algoritmo con el vector $[4$ $5$ $6$ $3$ $2$ $1]$, es decir, con inputs generados en el rect\'angulo $[-4,4]\times[-5,5]\times[-6,6]\times[-3,3]\times[-2,2]\times[-1,1]$.
Lo primero que notamos al empezar a testear el algoritmo es que a velocidades entre 0.1 y 1, el algoritmo devuelve matrices que no son las esperadas (ver debajo cu\'ales son las esperadas), es decir, el algoritmo diverge. Debajo se muestran las matrices que devuelve el algoritmo a velocidades 0.1 y 0.5, $w_{0.1}$ y $w_{0.5}$, respectivamente, con una misma matriz inicial aleatoria:
$w_{0.1}$=\begin{math}
\left(\begin{array}{cccccc}      
-0.5449  &  0.2560  & -0.7654 &  -0.1058 &   0.2008  &  0.0163\\
    0.1996  &  0.5250  &  0.5991 &   0.3850 &  -0.3669  &  0.2067\\
   -0.2410  &  0.4598  &  0.3682 &   0.6063 &  -0.3615  &  0.3109\\
   -0.5478  &  0.6768  & 0.2482  & -0.3455 &  -0.1365  &  0.2054
\end{array}
\right)
\end{math}

$w_{0.5}$=\begin{math}
\left(\begin{array}{cccccc} 
   -0.1681 &   0.2565 &   0.0065 &  -0.9402 &   0.1066  &  0.1027\\
    0.2428 &   0.2481 &   0.1694 &  -0.9006 &  -0.0466  &  0.1937\\
   -0.2902 &  -0.3731 &   0.2519 &  -0.5548 &   0.6257  &  0.1174\\
   -0.5345 &   0.3213 &  -0.4962 &   0.5392 &  -0.0579  & -0.2660 
\end{array}
\right)
\end{math}

Claramente, estas matices no convergen a lo mismo y tampoco llevan en sus filas los vectores can\'onicos que corresponden a las componentes principales. Por esto, usamos una velocidad de 0.001. Reproducimos en la siguiente secci\'on las matrices devueltas para 1000 y 2000 iteraciones, para dos matrices iniciales distintas.
